#ifndef NRPSTG_CAMERA_H
#define NRPSTG_CAMERA_H

#include <string>
#include <SDL.h>
#include <boost/unordered_map.hpp>

using namespace std;
using namespace boost;

class CameraMode;

class Camera {
private:
    CameraMode* _current_mode;
    unordered_map<string, CameraMode*> _modes;

public:
    Camera();
    virtual ~Camera();

    void set_mode(string mode);
    void apply_camera_transform();
    void input(SDL_Event* evt, unsigned int ms);
    void update(unsigned int ms);

};

#endif